#ifndef SENDQUEUE_H
#define SENDQUEUE_H

#include <QObject>
#include <QQueue>
#include <QPair>
class SendQueue : public QObject
{
    Q_OBJECT
public:
    static SendQueue* getInstance();
    //当前任务队列是否为空
    bool isEmpty();
signals:
    //向线程发送有任务的信号
    void s_haveNewTask();
    void s_doneWork();
public slots:
    //向队列添加任务
    void addFile(QString senderoc,QString receiver,QString filepath);
    //出队，获取任务
    QPair<QPair<QString,QString>,QString> getTask();
    //检查是否还有任务
    void checkQueue();

private:
    SendQueue();
    static SendQueue* sendqueue;
    QQueue<QPair<QPair<QString,QString>,QString>>* queue;
    //记录发送线程是否在忙，防止添加任务时有任务信号
    bool isSending;
};

#endif // SENDQUEUE_H
